/**
 * 
 */
$(function() {
	$("#accordion").accordion();
	$("#accordion div li").addClass('myAccordionClass');

	$("#content").append($("#userListDiv"));
	$("#content").append($("#addUserDiv"));
	$("#content").append($("#updateUserDiv"));

	$("#content").append($("#roleListDiv"));
	$("#content").append($("#addRoleDiv"));
	$("#content").append($("#clientTypeListDiv"));
	$("#content").append($("#addClientTypeDiv"));
	$("#content").append($("#clientClassListDiv"));
	$("#content").append($("#addClientClassDiv"));
	refreshUserList();

	$("#accordion div li").unbind().bind('click', function() {
		var thisId = $(this).attr("id");
		accordionLiCheck(thisId);
	});
	$('#addUserSubmit').unbind().bind('click', function() {
		addUser();
	});
	$('#addRoleSubmit').unbind().bind('click', function() {
		addUserRole();
	});
	$('#addClientClassSubmit').unbind().bind('click', function() {
		addClientClass();
	});
	$('#addClientTypeSubmit').unbind().bind('click', function() {
		addClientType();
	});
	$('#updateUserSubmit').unbind().bind('click', function() {
		udpateUser();
	});

});

// free function

function accordionLiCheck(liID) {
	hiddenAll();
	if ('userList' == liID) {
		refreshUserList();
	} else if ('userAdd' == liID) {
		$("#addUserDiv").show();
		refreshRoleOption();
	} else if ('userRoleList' == liID) {
		refreshRoleList();
	} else if ('userRoleAdd' == liID) {
		$("#addRoleDiv").show();
	} else if ('clientClassList' == liID) {
		refreshClientClassList();
	} else if ('clientClassAdd' == liID) {
		$("#addClientClassDiv").show();
	} else if ('clientTypeList' == liID) {
		refreshClientTypeList();
	} else if ('clientTypeAdd' == liID) {
		$("#addClientTypeDiv").show();
	} else if ('logout' == liID) {
		logout();
	}
}

function hiddenAll() {
	$("#userListDiv").hide();
	$("#addUserDiv").hide();
	$("#updateUserDiv").hide();

	$("#roleListDiv").hide();
	$("#addRoleDiv").hide();
	$("#clientTypeListDiv").hide();
	$("#addClientTypeDiv").hide();
	$("#clientClassListDiv").hide();
	$("#addClientClassDiv").hide();
}

function refreshRoleOption() {
	$.getJSON("servlet?method=getRoleOption", {
		'p' : '1'
	}, function(data) {
		$("#addUserDiv #roleID option").remove();
		if (data) {
			$("#addUserDiv #roleID").append(data);
		}
	});
};
function refreshClientClassOption() {
	$.getJSON("servlet?method=getClientClassOption", {
		'p' : '1'
	}, function(data) {
		$("#addOrderClientName option").remove();
		if (data) {
			$("#addOrderClientName").append(data);
		}
	});
};
function refreshClientTypeOption() {
	$.getJSON("servlet?method=getClientTypeOption", {
		'p' : '1'
	}, function(data) {
		$("#addOrderClientName option").remove();
		if (data) {
			$("#addOrderClientName").append(data);
		}
	});
};

function logout() {
	$.getJSON("servlet?method=logout", {
		'p' : '1'
	}, function(data) {
		location.href = '../index.jsp';
	});
};

function refreshRoleList() {
	$("#roleListTable tr").eq(1).nextAll().remove();
	$.getJSON("servlet?method=listAllRole", {
		'p' : '1'
	}, function(data) {
		if (data) {
			$("#roleListTable").append(data);
		}
		$("#roleListDiv").show();
	});
};

function refreshUserList() {
	$("#userListTable tr").eq(1).nextAll().remove();
	$.getJSON("servlet?method=listAllUser", {
		'p' : '1'
	}, function(data) {
		if (data) {
			$("#userListTable").append(data);
		}
		$("#userListDiv").show();
	});
};
function refreshClientTypeList() {
	$("#clientTypeListTable tr").eq(1).nextAll().remove();
	$.getJSON("servlet?method=listAllClientType", {
		'p' : '1'
	}, function(data) {
		if (data) {
			$("#clientTypeListTable").append(data);
		}
		$("#clientTypeListDiv").show();
	});
};
function refreshClientClassList() {
	$("#clientClassListTable tr").eq(1).nextAll().remove();
	$.getJSON("servlet?method=listAllClientClass", {
		'p' : '1'
	}, function(data) {
		if (data) {
			$("#clientClassListTable").append(data);
		}
		$("#clientClassListDiv").show();
	});
};

function deleteUser(id) {
	$.getJSON("servlet?method=deleteUser", {
		'id' : id
	}, function(data) {
		if (data)
			alert(data);
		refreshUserList();
	});
};
function deleteClientType(id) {
	$.getJSON("servlet?method=deleteClientType", {
		'id' : id
	}, function(data) {
		if (data)
			alert(data);
		refreshClientTypeList();
	});
};
function deleteClientClass(id) {
	$.getJSON("servlet?method=deleteClientClass", {
		'id' : id
	}, function(data) {
		if (data)
			alert(data);
		refreshClientClassList();
	});
};

function getUserInfo(id) {
	$.getJSON("servlet?method=getUserInfo", {
		'id' : id
	}, function(data) {
		$("#updateUserDiv #roleID option").remove();
		if (data) {
			$("#updateUserDiv #username").html(data.username);
			$("#updateUserDiv #userID").html(data.id);
			$("#updateUserDiv #roleID").append(data.optionHtml);
		}
		hiddenAll();
		$("#updateUserDiv").show();
	});
}

function resetPwd(id) {
	$.getJSON("servlet?method=resetPwd", {
		'id' : id
	}, function(data) {
		if (data)
			alert(data);
	});
};

function addUser() {
	var username = $("#addUserDiv #username")[0].value;
	var password = $("#addUserDiv #password")[0].value;
	var roleID = $("#addUserDiv #roleID")[0].value;
	if (username == "" || username == null) {
		alert("please input username");
		return false;
	} else if (password == "" || username == null) {
		alert("please input password");
		return false;
	}

	$.getJSON("servlet?method=addUser", {
		'username' : username,
		'password' : password,
		'roleID' : roleID
	}, function(data) {
		if (data)
			alert(data);
		hiddenAll();
		refreshUserList();
	});
}

function addUserRole() {
	var roleName = $("#addRoleDiv #roleName")[0].value;
	var roleDescription = $("#addRoleDiv #roleDescription")[0].value;
	if (roleName == "" || roleName == null) {
		alert("请输入角色名称");
		return false;
	}

	$.getJSON("servlet?method=addUserRole", {
		'roleName' : roleName,
		'roleDescription' : roleDescription
	}, function(data) {
		if (data)
			alert(data);
		hiddenAll();
		refreshRoleList();
	});
}

function addClientType() {
	var clientTypeName = $("#addClientTypeDiv #clientTypeName")[0].value;
	var clientTypeDescription = $("#addClientTypeDiv #clientTypeDescription")[0].value;
	if (clientTypeName == "" || clientTypeName == null) {
		alert("请输入客户类型名称");
		return false;
	}

	$.getJSON("servlet?method=addClientType", {
		'clientTypeName' : clientTypeName,
		'clientTypeDescription' : clientTypeDescription
	}, function(data) {
		if (data)
			alert(data);
		hiddenAll();
		refreshClientTypeList();
	});
}
function addClientClass() {
	var clientClassName = $("#addClientClassDiv #clientClassName")[0].value;
	var clientClassMiniTrade = $("#addClientClassDiv #clientClassMiniTrade")[0].value;
	var clientClassMaxTrade = $("#addClientClassDiv #clientClassMaxTrade")[0].value;
	var clientClassDescription = $("#addClientClassDiv #clientClassDescription")[0].value;
	if (clientClassName == "" || clientClassName == null) {
		alert("请输入客户分类名称");
		$("#addClientClassDiv #clientClassName").focus();
		return false;
	} else if (clientClassMiniTrade == "" || clientClassMiniTrade == null) {
		alert("请输入最小成交额");
		$("#addClientClassDiv #clientClassMiniTrade").focus();
		return false;
	} else if (clientClassMaxTrade == "" || clientClassMaxTrade == null) {
		alert("请输入最大成交额");
		$("#addClientClassDiv #clientClassMaxTrade").focus();
		return false;
	}
	var intReg = /^\d+$/;
	if (!intReg.test(clientClassMiniTrade)) {
		alert("最小成交额必须是整数");
		$("#addClientClassDiv #clientClassMiniTrade").focus();
		return false;
	} else if (!intReg.test(clientClassMaxTrade)) {
		alert("最大成交额必须是整数");
		$("#addClientClassDiv #clientClassMaxTrade").focus();
		return false;
	}

	$.getJSON("servlet?method=addClientClass", {
		'clientClassName' : clientClassName,
		'clientClassMiniTrade' : clientClassMiniTrade,
		'clientClassMaxTrade' : clientClassMaxTrade,
		'clientClassDescription' : clientClassDescription
	}, function(data) {
		if (data)
			alert(data);
		hiddenAll();
		refreshClientClassList();
	});
}

function udpateUser() {
	var id = $("#updateUserDiv #userID").text();
	var roleID = $("#updateUserDiv #roleID")[0].value;
	$.getJSON("servlet?method=updateUser", {
		'id' : id,
		'roleID' : roleID
	}, function(data) {
		if (data)
			alert(data);
		hiddenAll();
		refreshUserList();
	});
}
